package com.wxzz.elearing.pay.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wxzz.elearing.pay.dto.UserIdGetUserWalletDto;
import com.wxzz.elearing.pay.entity.UserWallet;
import com.wxzz.elearning.common.dto.FeignUserWalletDto;
import com.wxzz.elearning.common.vo.ReturnVO;

import java.math.BigDecimal;

/**
 * <p>
 * 用户钱包 服务类
 * </p>
 *
 * @author
 * @since 2021-04-23
 */
public interface IUserWalletService extends IService<UserWallet> {

    /**
     * 根据用户id与类型查询用户钱包(远程调用)
     *
     * @param userId
     * @param userType
     * @return
     */
    FeignUserWalletDto selectUserWalletByUserIdAndType(Long userId, Integer userType);

    /**
     * token换取用户钱包
     *
     * @param jsonObject
     * @param userType
     * @return
     */
    ReturnVO<UserWallet> tokenGetUserWallet(JSONObject jsonObject, Integer userType);

    /**
     * 根据用户id换取用户钱包
     * @param userIdGetUserWalletDto
     * @return
     */
    ReturnVO<UserWallet> userIdGetUserWallet(UserIdGetUserWalletDto userIdGetUserWalletDto);

    /**
     * 修改钱包的余额
     *
     * @param decimal 变动的金额
     */
    UserWallet updateUserWallet(Long userId, Integer userType, BigDecimal decimal);

}
